Many applications (i.e., computer programs) executing on a computing device make use of geographic location information describing the physical, real-world location of the computing device. Applications use this geographic location information (hereinafter referred to simply as “location information”) for a variety of reasons. By way of example, an application designed to report the weather may make use of location information to provide a local weather report on the device (i.e., a report on the weather in the vicinity of the computing device on which the weather application is executing). Similarly, an application designed to assist with navigation may use location information to ascertain a current position of the computing device in relation to a destination, so as to provide directions in substantially real-time. While there are many benefits to supplying applications with location information (e.g., improved and expanded functionalities of those applications), applications' use of location information also raises privacy concerns. For example, users may be concerned that certain applications are using the location information in undesirable ways (e.g., supplying the location information to specific marketers based upon knowledge of a user's whereabouts ascertained through the location information). Accordingly, technologies have been developed to control the precision of the location information that is provided to different applications.
Conventionally, the precision of the location information that was provided to different applications executing on a computing device was controlled through two primary techniques. In a system employing the first technique, applications were configured to request a particular precision of location information through the use of permission levels. That is to say, different granularities of location information were defined as corresponding to different permission levels. An application desirous of obtaining location information having a particular precision (i.e., accuracy) would simply request the location information by supplying an appropriate permission level. In this manner, applications could obtain location information at any level of granularity desired by simply requesting that location information with the proper permission level. However, this technique relied upon the applications themselves to dictate the precision of the location information to be provided, which creates privacy concerns when it is not entirely known how that location information will be used by the applications.
In a system employing the second technique, applications were associated with particular sensors. In this manner, the precision of the location information that was supplied to the different applications was dependent upon the precision of the sensors associated with those different applications. For example, a first application could be associated with one or more sensors employing cellular triangulation technology as a means for obtaining the location information. Accordingly, the precision of the location information supplied to this application would be limited to the maximum precision obtainable through cellular triangulation techniques. Conversely, a second application could be associated with one or more sensors employing wireless local area network (Wi-Fi) technology. Sensors employing Wi-Fi technology are capable of obtaining far more precise location information than sensors employing cellular triangulation technology. Accordingly, this second application would be capable of obtaining far more precise location information than the first application. However, systems employing this technique are incapable of leveraging current technology that allows for a highly precise measurement of location by analyzing the input from several different types of sensors (e.g., GPS sensors, Wi-Fi sensors, cellular sensors, etc.).
Another shortcoming of conventional location information adjustment systems is that they employ unsophisticated techniques for adjusting the precision of the location information. As such, the adjusted location information generated by these systems may be easily reverse-engineered. That is to say, conventional systems employing simple techniques for adjusting the precision of location information are susceptible to reverse-engineering, whereby the highly precise form of the location information may be surmised based on the adjusted location information.
Accordingly, there is a need for a new technology aimed at addressing one or more of the drawbacks associated with conventional techniques for controlling the precision of location information being provided to particular applications.